/*************************************************************
 * Title: 
 * Description: 
 * Author: Snow Huang
 * Email: Shaobin.Software@gmail.com Shaobin_Software@163.com
 * CreateTime: 2010-8-3 上午08:03:21
 * Copyright © 落羽社区 All right reserved
 ************************************************************/
package snow.core.domain.enums.type;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

import org.hibernate.HibernateException;

import snow.core.domain.enums.Gender;

/**
 * 
 */
public class GenderType extends EnumUserType {

	/** 从JDBC的ResultSet读取属性值。这个方法是在从数据库查询数据时用到。 */
	public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {
		return Gender.getGender(rs.getObject(names[0]) == null ? null : Boolean.valueOf(rs.getBoolean(names[0])));
	}

	/** 将属性的值设置到PreparedStatement。 */
	public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
	}

	/** 告诉Hibernate这个UserType用来映射的数据类型。这里是Gender类 */
	public Class<?> returnedClass() {
		return Gender.class;
	}

	/** 告诉Hibernate要使用什么SQL列类型生成DDL */
	public int[] sqlTypes() {
		return new int[] { Types.BOOLEAN };
	}

}
